var ds;
var grid;
var insertForm;
var updateForm;
var form;
var win;
var TOTAL_FACTORY_FEE = "total_factory_fee";
Ext.onReady(function() {
			initStore();
			initData();

		});
var detailStore;
var splitStore;
var SCHEME;
var SPECTYPE;
var aep = new AutoEstPrice();
var LOADWT;
var detailFacStore;
var sortStore, schemeStore, stepStore;
var stepForm, stepGrid;
var InforForm;
var splitForm, splitGrid;
var xg = Ext.grid;
var detailWin;
var indicator = 0;
var detailGrid;
var detailGridForm;
var splitRecord = Ext.data.Record.create([{
			name : 'factory'
		}, {
			name : 'facInt'
		}, {
			name : 'loadNow'
		}, {
			name : 'loadBound'
		}, {
			name : 'loadAfter'
		}, {
			name : 'loadWt'
		}, {
			name : 'estimateData'
		}]);
function initData() {
	
	aep.setConfig({
				name : TOTAL_FACTORY_FEE,
				func : CostEstimate.generateCostMin
			});
	loadData();
	initGrid();
}
function loadData()
{
	ds.load({
		params : {
			start : 0,
			limit : 10
		},
		callback : function() {
			/* 这里需要对每个分厂的估算成本进行填充 */

			detailStore.load({
				params : {
					start : 0,
					limit : 10
				},
				callback : function(_rec, opt, sucess) {

					if (!sucess)
						return false;
					var _data = detailStore.getAt(0).data["plate"];
					detailStore.getAt(0).data["plate"] = _data.split("_")[0];
					detailStore.getAt(0).data["plannum"] = _data.split("_")[1];
					detailStore.getAt(0).data["loadWt"] = parseFloat(_data
							.split("_")[2]);
					detailStore.getAt(0).data["zhenpian"] = parseFloat(_data
							.split("_")[3]);
					detailStore.getAt(0).data["loadWt"] = (parseFloat(_data
							.split("_")[2])*detailStore.getAt(0).data["zhenpian"]).toFixed(4);
					if(!SPECTYPE)
						SPECTYPE=detailStore.getAt(0).data["specType"];
					if(!SCHEME)
						SCHEME=detailStore.getAt(0).data["scheme"];
					dwr.engine.setAsync(false);
					aep.setConfig(detailStore.getAt(0).data);
					logger.debug("start to run.......");
					aep.run(TOTAL_FACTORY_FEE, aep.getProduct(), aep.getDate(),
						function(ret) {
							if(!ret)
							{
								Ext.Msg.alert("错误","暂时无法处理此类规格，请联系管理定义新的规格");
								return;
							}
							else if(ret.length==0)
							{
								
								Ext.Msg.alert("错误","配方价格可能无法找到，所以定价都为0");
								return;
							}
							var arr=ret;
							var i=0;
							ds.each(function(rec){
								rec.data["estimateData"]=arr[i++];
							});
							grid.getView().refresh();

						});
					dwr.engine.setAsync(true);
				}
			});

		}
	});
}



function initStore() {
	sortStore = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : '../orderJiaGongIndex.do?action=sort'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'totalProperty',
					root : 'root'
				}, [{
							name : 'sort',
							mapping : 'specName'
						}])

			// reader : new Ext.data.ArrayReader(sortRec)
		});
	sortStore.load({
				params : {
					start : 0,
					limit : 10
				}
			});
	schemeStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderJiaGongIndex.do?action=scheme'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'scheme'
								}])
			});
	stepStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../orderJiaGongIndex.do?action=step'
						}),
				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'processName'
								}, {
									name : 'processPos'
								}])
			});
	ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../taskDispatchIndex.do?action=list'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'factory'
								}, {
									name : 'facInt'
								}, {
									name : 'loadNow',
									type:'float'
								}, {
									name : 'loadBound',
									type:'float'
								}, {
									name : 'loadAfter',
									type:'float'
								}, {
									name : 'estimateData',
									type:'float'
								}])
			});
	detailFacStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../taskDispatchIndex.do?action=getDetailByFac'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'salesid'
								}, {
									name : 'plannum'
								}, {
									name : 'ctrlqty'
								}, {
									name : 'ctrldate'
								}, {
									name : 'ctrldatet'
								}, {
									name : 'spec'
								}, {
									name : 'ssign'
								}, {
									name : 'plate'
								}])
			});
	detailStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../taskDispatchIndex.do?action=detail'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'ssign'
								}, {
									name : 'spec'
								}, {
									name : 'plate'
								}, {
									name : 'zhenpian'
								}, {
									name : 'specType'
								}, {
									name : 'scheme'
								}, {
									name : 'plannum'
								}, {
									name : 'loadWt'
								}])
			});
	splitStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : '../taskDispatchIndex.do?action=list'
						}),

				reader : new Ext.data.JsonReader({
							totalProperty : 'totalProperty',
							root : 'root'
						}, [{
									name : 'factory'
								}, {
									name : 'facInt'
								}, {
									name : 'loadNow'
								}, {
									name : 'loadBound'
								}, {
									name : 'loadAfter'
								}, {
									name : 'loadWt'
								}, {
									name : 'estimateData'
								}])
			});
}
function getUpdateForm() {
	if (!updateForm) {
		updateForm = new Ext.FormPanel({
					labelWidth : 75,
					id : "solo-form",
					url : '../taskDispatchIndex.do?action=solo',
					frame : true,
					bodyStyle : 'padding:5px 5px 0',
					width : 340,
					defaults : {
						width : 230
					},
					defaultType : 'textfield',
					items : [{
								fieldLabel : "牌号",
								// width : 40,
								sortable : true,
								name : 'ssign'
							}, {
								fieldLabel : "规格",
								// width : 50,
								sortable : true,
								name : 'spec'
							}, {
								fieldLabel : "镀层",
								// width : 50,
								sortable : true,
								name : 'plate'
							}, {
								fieldLabel : "数量",
								// width : 50,
								sortable : true,
								name : 'zhenpian'
							}, {
								fieldLabel : '分厂内部号',// 一开始漏了个主id,导致update不成功
								name : 'factory',
								readOnly : true,
								allowBlank : false
							}, {
								fieldLabel : '分厂实际号',// 一开始漏了个主id,导致update不成功
								name : 'facInt',
								readOnly : true,
								allowBlank : false
							}, {
								fieldLabel : '目前生产情况',// 一开始漏了个主id,导致update不成功
								name : 'loadNow',
								readOnly : true,
								allowBlank : false
							}, {
								fieldLabel : '生产上限',// 一开始漏了个主id,导致update不成功
								name : 'loadBound',
								readOnly : true,
								allowBlank : false
							}, {
								fieldLabel : "安排后的生产重量",
								// width : 50,
								sortable : true,
								name : 'loadAfter'
							}, {
								fieldLabel : "估算的成本",
								// width : 50,
								sortable : true,
								name : 'estimateData'
							}]
				});
	}
	return updateForm;
}// 构造了一个更新的界面。

function getStepForm() {
	if (!stepGrid) {

		stepGrid = new xg.GridPanel({
					id : 'split-grid',
					// autoScoll : true,
					ds : stepStore,
					cm : new xg.ColumnModel([{
								header : "加工步骤",
								width : 350,
								sortable : true,
								dataIndex : 'processPos'
							}, {
								header : "加工名称",
								width : 350,
								sortable : true,
								dataIndex : 'processName'
							}]),

					stripeRows : true,
					width : 700,
					autoHeight : true,
					viewConfig : {
						forceFit : true
					}
				});
	}
	if (!stepForm) {
		stepForm = new Ext.FormPanel({
					// renderTo : 'product',
					url : '../orderCaiLiaoIndex.do?action=update',
					labelAlign : 'left',
					title : '进行安排的产品信息',
					buttonAlign : 'right',
					bodyStyle : 'padding:5px 5px 0',
					width : 700,
					autoHeight : true,
					frame : true,
					labelWidth : 60,
					items : [{
								layout : 'column',
								border : false,
								labelSeparator : ':',
								items : stepGrid
							}]
				});
	}
	return stepForm;
}

function getInfForm() {
	if (!stepGrid) {

		stepGrid = new xg.GridPanel({
					id : 'step-grid',
					autoScoll : true,
					ds : stepStore,
					cm : new xg.ColumnModel([{
								header : "加工步骤",
								width : 50,
								sortable : true,
								dataIndex : 'processPos'
							}, {
								header : "加工名称",
								width : 50,
								sortable : true,
								dataIndex : 'processName'
							}]),

					stripeRows : true,
					width : 700,
					autoHeight : true,
					viewConfig : {
						forceFit : true
					}
				});
	}
	if (!InforForm)
		InforForm = new Ext.FormPanel({
			labelAlign : 'left',
			title : '进行安排的产品信息',
			buttonAlign : 'right',
			bodyStyle : 'padding:5px 5px 0',
			width : 700,
			frame : true,
			labelWidth : 60,
			autoHeight : true,
			// autoScroll : true,
			items : [{
				layout : 'column',
				border : false,
				labelSeparator : ':',
				items : [{
							columnWidth : .180,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'textfield',
										fieldLabel : '牌号',
										name : 'ssign',
										readOnly : true,
										allowBlank : false,
										anchor : '90%'
									}]
						}, {
							columnWidth : .180,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'textfield',
										fieldLabel : '规格',
										name : 'spec',
										readOnly : true,
										allowBlank : false,
										anchor : '90%'
									}]
						}, {
							columnWidth : .180,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'textfield',
										fieldLabel : '镀层',
										name : 'plate',
										readOnly : true,
										allowBlank : false,
										anchor : '90%'
									}]
						}, {
							columnWidth : .180,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'textfield',
										fieldLabel : '安排数量',
										name : 'zhenpian',
										readOnly : true,
										allowBlank : false,
										anchor : '90%'
									}]
						}, {
							columnWidth : .180,
							layout : 'form',
							border : false,
							items : [{
										xtype : 'textfield',
										fieldLabel : '总的重量',
										name : 'loadWt',
										listeners : {
											"change" : function(_this, _new,
													_old) {
												LOADWT = _new;

											}
										},
										// readOnly : true,
										allowBlank : false,
										anchor : '90%'
									}]
						}, {
							columnWidth : .360,
							layout : 'form',
							border : false,
							items : [{
										// xtype : 'textfield',
										fieldLabel : '规格种类',
										name : 'specType',
										readOnly : true,
										allowBlank : false,
										xtype : 'combo',
										store : sortStore,
										displayField : 'sort',
										// valueField : 'value',
										// typeAhead : true,

										triggerAction : 'all',
										mode : 'local',
										listeners : {
											"select" : function(_combox, _rec,
													_index) {
												var sortType = _rec.data['sort'];

												/* 根据加工类型，动态的查找所有的加工 */
												schemeStore.load({
															params : {
																sortType : sortType
															}
														});
												return true;

											}
										},
										anchor : '90%'
									}]
						}, {
							columnWidth : .360,
							layout : 'form',
							border : false,
							items : [{
								// xtype : 'textfield',
								fieldLabel : '加工流程',
								name : 'scheme',
								readOnly : true,
								allowBlank : false,
								xtype : 'combo',
								store : schemeStore,
								displayField : 'scheme',

								typeAhead : true,
								triggerAction : 'all',
								mode : 'local',
								listeners : {
									"select" : function(_this, _rec, _index) {
										var scheme = _rec.data['scheme'];
										var specType = InforForm.find('name',
												'specType')[0].getValue();
										SCHEME = scheme;
										SPECTYPE = specType;

										/* 根据加工类型，动态的查找所有的加工 */
										stepStore.load({
													params : {
														scheme : scheme,
														sortType : specType
													}
												});

									}
								},
								anchor : '90%'
							}]
						}]
			}, {
				layout : 'column',// 在formpanel的itmes加入一个column的定义
				border : false,
				labelSeparator : ':',

				items : stepGrid
			}]

		});
	return InforForm;
}


function getSplitForm() {
	if (!splitGrid)
		splitGrid = new xg.EditorGridPanel({
					id : 'step-grid',
					title:"任务安排情况",
					ds : splitStore,
					cm : new xg.ColumnModel([{
								header : "分厂号",
								// width : 50,
								sortable : true,

								dataIndex : 'factory'
							}, {
								header : "目前负荷",
								// width : 50,
								sortable : true,
								dataIndex : 'loadNow'
							}, {
								header : "负荷上限",
								// width : 40,
								sortable : true,
								dataIndex : 'loadBound'
							}, {
								header : "估算成本",
								// width : 40,
								sortable : true,
								dataIndex : 'estimateData'
							}, {
								header : "任务安排数量",
								// width : 40,
								sortable : true,
								editor : new Ext.form.NumberField({
											allowBlank : false
										}),
								dataIndex : 'loadAfter'
							}, {
								header : "任务安排重量",
								// width : 40,
								sortable : true,

								editor : new Ext.form.NumberField({
											allowBlank : false
										}),
								dataIndex : 'loadWt'
							}]),

					stripeRows : true,
					width : 700,
					autoHeight : true,
					viewConfig : {
						forceFit : true
					}
				});;
	if (!splitForm)
		splitForm = new Ext.FormPanel({
					id : "split-form",
					labelAlign : 'left',
					title : '任务安排建议',
					buttonAlign : 'right',
					bodyStyle : 'padding:5px 5px 0',
					width : 700,
					frame : true,
					labelWidth : 60,
					autoHeight : true,
					// autoScroll : true,
					items : [{
								layout : 'column',
								border : false,
								labelSeparator : ':',
								items : [{
											columnWidth : .180,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '牌号',
														name : 'ssign',
														readOnly : true,
														allowBlank : false,
														anchor : '90%'
													}]
										}, {
											columnWidth : .180,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '规格',
														name : 'spec',
														readOnly : true,
														allowBlank : false,
														anchor : '90%'
													}]
										}, {
											columnWidth : .180,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '镀层',
														name : 'plate',
														readOnly : true,
														allowBlank : false,
														anchor : '90%'
													}]
										}, {
											columnWidth : .180,
											layout : 'form',
											border : false,
											items : [{
														xtype : 'textfield',
														fieldLabel : '数量',
														name : 'zhenpian',
														readOnly : true,
														allowBlank : false,
														anchor : '90%'
													}]
										}]
							}, {
								layout : 'column',
								border : false,

								items : splitGrid
							}]

				});
	return splitForm;
}

function getDetailGrid() {
	if (!detailGrid) {
		detailGrid = new xg.GridPanel({
					id : 'detail-grid',
					autoScoll : true,
					ds : detailFacStore,
					cm : new xg.ColumnModel([{
								header : "销售编号",
								// width : 50,
								sortable : true,
								dataIndex : 'salesid'
							}, {
								header : "订单编号",
								// width : 50,
								sortable : true,
								dataIndex : 'plannum'
							}, {
								header : "牌号",
								// width : 40,
								sortable : true,
								dataIndex : 'ssign'
							}, {
								header : "规格",
								// width : 50,
								sortable : true,
								dataIndex : 'spec'
							}, {
								header : "镀层",
								// width : 50,
								sortable : true,
								dataIndex : 'plate'
							}, {
								header : "发货数量",
								// width : 50,
								sortable : true,
								dataIndex : 'ctrlqty'
							}, {
								header : "开始时间",
								// width : 50,
								sortable : true,
								dataIndex : 'ctrldate'
							}, {
								header : "结束时间",
								// width : 50,
								sortable : true,
								dataIndex : 'ctrldatet'
							}]),

					stripeRows : true,
					width : 700,
					autoHeight : true,
					bbar : new Ext.PagingToolbar({
								pageSize : 10,
								store : detailFacStore,
								displayInfo : true,
								displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
								emptyMsg : "没有记录"
							}),
					viewConfig : {
						forceFit : true
					}
				});
	}
	return detailGrid;

}
function initGrid() {
	Ext.QuickTips.init();
	//分厂的详细运行情况。
	if (!detailGrid)
		detailGrid = getDetailGrid();
	//安排之后显示的form.
	if (!form)
		form = getUpdateForm();

	if (!win) {
		win = new Ext.Window({
					layout : 'column',
					autoHeight : true, 
					closeAction : 'hide',
					plain : true,
					items : form,
					modal : false,
					buttons : [{
						text : '提交',
						handler : function() {

							if (indicator == 1) {
								//确定将该任务安排进生产。
								var _rec = detailStore.getAt(0);
								var arr = grid.getSelectionModel()
										.getSelections();
								Ext.Msg.confirm("警告",
										"是否真的需要将这些任务安排进生产线", function(
												button) {
											if (button == "yes") {
												dwr.engine.setAsync(false);
												for (var i = 0; i < arr.length; i++) {

													TaskDispatchIndex
															.createMultiTasks(
																	_rec.data["plannum"],
																	arr[i].data["factory"],
																	arr[i].data["facInt"],
																	arr[i].data["loadAfter"],
																	_rec.data["loadWt"],
																	function(
																			_ret) {
																	
																		if (!_ret) {

																			Ext.Msg
																					.alert(
																							"提示：",
																							"分配失败,可能已经分配过了");
																		}
																	});
												}
												dwr.engine.setAsync(true);
												
											}

										});

							}
							else if(indicator ==2)
							{//进行产品信息的修改，修改了scheme,规格类型。
									SPECTYPE=InforForm.find("name","specType")[0].getValue();
									SCHEME=InforForm.find("name","scheme")[0].getValue();
									loadData();
									win.hide();
								
							}
							else  if(indicator==0){
								//将目前的安排任务进行分配。
								if (form.getForm().isValid()) {
									form.getForm().submit({
												success : function(retForm,
														retAction) {
													Ext.Msg.confirm("提示","烧结任务分配成功,是否需要安排下一个任务？",function(button){
														if(button=="yes")
														{
															window.location.href="dispatchIndex.jsp";
														}
														
														
													});
													win.hide();
												},
												failure : function(retForm,
														retAction) {
															
													Ext.Msg.alert("提示","烧结任务分配失败，可能是已经分配过了");
													win.hide();
												}
												
											});
								} else {
									Ext.MessageBox.alert('提示', '请填入必需的数据');
								}
							}
						}
					}, {
						text : '关闭',
						handler : function() {
							// form.getForm().reset();
							win.hide();
						}
					}]
				});
	}
	if (!detailWin) {
		detailWin = new Ext.Window({
					title : '分厂详细生产情况',
					id : "detail-win",
					layout : 'column',
					width : 700,
					autoScroll : true,
					autoHeight : true, // 4601782
					closeAction : 'hide',
					plain : true,
					items : detailGrid,
					modal : false,// 如果这个属性不设，弹出窗口会增加20M内存使用。
					buttons : [{
								text : '关闭',
								handler : function() {
									// form.getForm().reset();
									detailWin.hide();
								}
							}]
				});
	}


	var sm = new xg.CheckboxSelectionModel();
	grid = new xg.GridPanel({
		id : 'button-grid',
		autoScoll : true,
		ds : ds,
		cm : new xg.ColumnModel([sm, {
					header : "分厂号",
					// width : 50,
					sortable : true,
					dataIndex : 'factory'
				}, {
					header : "目前负荷",
					// width : 50,
					sortable : true,
					dataIndex : 'loadNow'
				}, {
					header : "负荷上限",
					// width : 40,
					sortable : true,
					dataIndex : 'loadBound'
				}, {
					header : "估算成本",
					// width : 40,
					sortable : true,
					dataIndex : 'estimateData'
				}]),
		sm : sm,
		stripeRows : true,

		viewConfig : {
			forceFit : true
		},
		tbar : [/*{
					text : '烧结安排',
					tooltip : '选定分厂进行烧结安排',
					iconCls : 'add',
					onClick : function() {
						if (sm.getCount() == 1) {
							if (detailStore.getCount() == 0)
								return;
							indicator = 0;
							form = getUpdateForm();
							var items = new Ext.util.MixedCollection();
							// win.items.clear();
							if (InforForm)
								InforForm.hide();
							if (splitForm)
								splitForm.hide();
							if (form)
								form.show();
							win.setWidth(350);
							items.add("form", form);

							win.items = items;
							win.show(this);

							form.getForm().reset();
							form.getForm().loadRecord(sm.getSelected());
							form.getForm().loadRecord(detailStore.getAt(0));
						} else {
							Ext.MessageBox.alert('提示', '请选择一条记录！');
						}

					}
				}, '-', {
					text : '拆分安排',
					tooltip : '选定分厂进行烧结拆分安排',
					iconCls : 'add',
					onClick : function() {
						if (sm.getCount() >= 1) {
							if (detailStore.getCount() == 0)
								return;
							indicator = 1;
							splitStore.removeAll();
							splitStore.insert(0, sm.getSelections());

							splitForm = getSplitForm();

							var items = new Ext.util.MixedCollection();
							// win.items.clear();
							if (InforForm)
								InforForm.hide();
							if (form)
								form.hide();
							if (splitForm)
								splitForm.show();

							win.setWidth(700);
							items.add("form", splitForm);

							win.items = items;
							win.show(this);
							// alert("sucess form");
							splitForm.getForm().reset();
							// form.getForm().loadRecord(sm.getSelected());
							splitForm.getForm()
									.loadRecord(detailStore.getAt(0));

						} else {
							Ext.MessageBox.alert('提示', '请选择一条记录！');
						}

					}
				}, */'-', {
					text : '自动安排',
					tooltip : '自动安排进入合适的分厂',
					iconCls : 'add',
					onClick : function() {
						// 根据订单成本来判断，在负荷不够的情况下再考虑拆分,比较的是重量
						logger.debug("detailStore.count:"+detailStore.getCount());
						if (detailStore.getCount() == 0)
							return;
						ds.sort("estimateData");
						var load = detailStore.getAt(0).data["zhenpian"];
						var loadWt = detailStore.getAt(0).data["loadWt"];
						splitStore.removeAll();

						for (var i = 0; i < ds.getCount(); i++) {
							indicator = 1;
							
							//这里需要先进行初始化splitStore里面的东西。
							if(loadWt<=0)
								break;
							
							var _rec = new splitRecord({

									factory : ds.getAt(i).data["factory"],

									facInt : ds.getAt(i).data["facInt"],

									loadNow : ds.getAt(i).data["loadNow"],

									loadBound : ds.getAt(i).data["loadBound"],

									loadAfter : load,

									loadWt : loadWt,

									estimateData : ds.getAt(i).data["estimateData"]

							});
							loadWt-=((_rec.data["loadBound"]-_rec.data["loadNow"])-loadWt);
							splitStore.insert(0, _rec);
							
							splitForm = getSplitForm();

							var items = new Ext.util.MixedCollection();
							if (InforForm)
								InforForm.hide();
							if (form)
								form.hide();
							if (splitForm)
								splitForm.show();

							win.setWidth(700);
							items.add("form", splitForm);

							win.items = items;
							win.show();

							splitForm.getForm().reset();
							splitForm.getForm().loadRecord(detailStore.getAt(0));
							
							/*
							if (ds.getAt(i).data["loadBound"] > (ds.getAt(i).data["loadNow"] + LOADWT)) {
								var _rec = new splitRecord({

									factory : ds.getAt(i).data["factory"],

									facInt : ds.getAt(i).data["facInt"],

									loadNow : ds.getAt(i).data["loadNow"],

									loadBound : ds.getAt(i).data["loadBound"],

									loadAfter : load,

									loadWt : loadWt,

									estimateData : ds.getAt(i).data["estimateData"]

								});
								var _rec = splitStore.add(_rec);

								splitForm = getSplitForm();

								var items = new Ext.util.MixedCollection();
								// win.items.clear();
								if (InforForm)
									InforForm.hide();
								if (form)
									form.hide();
								if (splitForm)
									splitForm.show();

								win.setWidth(700);
								items.add("form", splitForm);
								logger.debug("win.show");
								win.items = items;
								win.show(this);
								splitForm.getForm().reset();
								splitForm.getForm().loadRecord(detailStore
										.getAt(0));
								break;
							}else {
								var _rec = new splitRecord({
									factory : ds.getAt(i).data["factory"],
									facInt : ds.getAt(i).data["facInt"],
									loadNow : ds.getAt(i).data["loadNow"],
									loadBound : ds.getAt(i).data["loadBound"],
									loadAfter : load,
									loadWt : (ds.getAt(i).data["loadBound"] - ds
											.getAt(i).data["loadNow"]),
									estimateData : ds.getAt(i).data["estimateData"]

								});
								var _rec = splitStore.add(_rec);
								logger.debug("loadWt is:"+loadWt);
								loadWt -= (ds.getAt(i).data["loadBound"] - ds
										.getAt(i).data["loadNow"]);
								logger.debug("after substract:"+loadWt);
										
								
							}*/
						}

					}
				}, '-', {
					text : '查看产品信息',
					tooltip : '查看进入安排的产品的信息',
					iconCls : 'add',
					onClick : function() {
						if (detailStore.getCount() == 0)
							return;
						indicator=2;
						LOADWT = detailStore.getAt(0).data["loadWt"];
						InforForm = getInfForm();
						var items = new Ext.util.MixedCollection();
						// items.remove("form");
						// win.items.clear();
						if (splitForm)
							splitForm.hide();
						if (form)
							form.hide();
						if (InforForm)
							InforForm.show();
						items.add("form", InforForm);
						win.setWidth(700);
						win.items = items;
						win.show(this);

						InforForm.getForm().reset();
						InforForm.getForm().loadRecord(detailStore.getAt(0));
					}
				}, '-', {
					text : '分厂运行情况',
					tooltip : '查看指定分厂的具体的生产任务',
					iconCls : 'add',
					onClick : function() {
						if (sm.getCount() >= 1) {
							detailFacStore.load({
								params : {
									start : 0,
									factory : sm.getSelections()[0].data["factory"],
									limit : 10
								}

							})
							// detailGridForm=getDetailGridForm();
							var items = new Ext.util.MixedCollection();

							items.add("detailGrid", detailGrid);
							detailWin.items = items;
							detailWin.show(this);
							// detailGrid.getView().refresh();
						} else {
							Ext.MessageBox.alert('提示', '请选择一条记录！');
						}
					}
				}],
		bbar : new Ext.PagingToolbar({
					pageSize : 10,
					store : ds,
					displayInfo : true,
					displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
					emptyMsg : "没有记录"
				}),
		width : 700,
		autoHeight : true,
		// frame:true,
		title : '发货信息列表',
		iconCls : 'icon-grid',
		renderTo : 'main'
	});

};

